在 CentOS 7 下架设 PPTP VPN 服务器

本文介绍了如何在 CentOS 7 下,通过使用 yum 软件仓库的 pptpd 守护进程架设自己的 PPTP VPN 服务器。

VPS

我用的是 Vultr VPS,所以文中的操作都是我基于 Vultr VPS 进行的,经测试我的 VPN 也是正常连接的。不同 VPS 提供商的设置可能有所区别,仅供参考。

架设 VPN 服务器

安装所需的包

yum install -y pptpd iptables-services

配置 PPTP 的设置。”ppp”配置文件对 pptpd 很重要。首先,如下配置 /etc/ppp/options.pptpd 文件,可以根据需要更改 DNS 服务器。

# Network and Routing

# If pppd is acting as a server for Microsoft Windows clients, this
# option allows pppd to supply one or two DNS (Domain Name Server)
# addresses to the clients.  The first instance of this option
# specifies the primary DNS address; the second instance (if given)
# specifies the secondary DNS address.
#ms-dns 10.0.0.1
#ms-dns 10.0.0.2
ms-dns 8.8.8.8
ms-dns 8.8.4.4

下一步,通过编辑 /etc/ppp/chap-secrets 文件添加VPN服务器的用户。即连接 VPN 所用的用户名和密码。client为帐号,server是pptpd服务,secret是密码,*表示是分配任意ip。只需修改账号和密码就可以。

# Secrets for authentication using CHAP
# client  server  secret    IP addresses
vultr1  pptpd   P@$$w0rd2  *
vultr2  pptpd   P@$$w0rd2  *

通过编辑 /etc/pptpd.conf 配置 pptpd 守护进程。下面的配置一般不需要修改,也可以根据用户数量需要修改 IP 地址范围。

#localip 192.168.0.1
#remoteip 192.168.0.234-238,192.168.0.245
localip 192.168.0.1
remoteip 192.168.0.234-238,192.168.0.245

下面编辑 /etc/sysctl.conf ,末尾添加一行 net.ipv4.ip_forward = 1 保存,来启用IP转发(IP forwarding)。之后运行 sysctl -p 命令使内核修改生效。

# System default settings live in /usr/lib/sysctl.d/00-system.conf.
# To override those settings, enter new settings here, or in an /etc/sysctl.d/<name>.conf file
#
# For more information, see sysctl.conf(5) and sysctl.d(5).
net.ipv4.ip_forward = 1

我想用 iptables 作为防火墙,用下面的命令停止并隐藏 CentOS 7 中的默认防火墙服务 firewalld

systemctl stop firewalld
systemctl mask firewalld

由于开始时已经安装了 iptables,直接运行下面的命令启用 iptables

systemctl enable iptables

向 filter 表的 INPUT 链以及 nat 表的 POSTROUTING 链添加规则

iptables -I INPUT -m state --state NEW -m tcp -p tcp --dport 1723 -j ACCEPT
iptables -t nat -A POSTROUTING -o eth0 -s 192.168.0.0/24 -j MASQUERADE

保存规则

service iptables save

最后,重启一下pptpd服务和iptables服务

systemctl restart iptables
systemctl restart pptpd

这样 PPTP VPN 服务器就搭建完成了。可以通过 PC 或移动设备连接。